如何在 OBS Studio 錄製和匯入透明背景影片

13 分鐘閱讀 View counter badge

一個使用 OBS 錄製的無背景的影片,右鍵下載回去試試?

前言

在直播圈中,創新的視覺效果總是能為觀眾帶來驚喜。前幾天在 Discord 的一位朋友說想要「在直播中播放一個去背的字幕影片」,這個問題勾起了我的好奇心。

他的需求是唱歌直播時,在畫面前方同步播放去背的歌詞字幕動畫,他抱怨說「OBS Studio 的綠幕功能去背效果不好」。

我過往沒有試過使用去背影片,對這個技術的現狀也不了解,於是我決定來試試如何在 OBS Studio 中實現這個功能。由於我手邊沒有去背影片素材,我的目標就變成了:「在 OBS 中錄製無背景的影片,並且能夠順利地在 OBS 中匯入播放。」

在研究過程中,我意外發現這種去背影片不僅適用於直播,在網頁上也能播放!
對我一個網頁工程師來說,這部份的應用其實更有趣 😀

接下來,讓我們一起探索如何在 OBS Studio 中玩轉透明背景影片,從基本概念到實際操作,一步步揭開這個有趣技術的神秘面紗。

朋友使用 Wondershare Filmora 14 & Adobe Premiere 製作字幕影片,這兩款軟體我都沒有,所以這部份不在本篇討論範圍內。後日談

影片/圖片是怎麼能「去背」的?

在深入探討 OBS Studio 的操作之前,讓我們先來了解一下「去背」這個概念的本質。

當我聽到朋友的需求時,我立刻花了 30 秒 Google 了一下 alpha channel video format

這位朋友的專業並不在資訊工程,他對於「去背影片」的概念侷限在綠幕或是黑幕,但從我的角度來看這個需求的關鍵其實是「Alpha channel」才對。

Alpha 通道

Alpha 通道是除了 紅 (R) 綠 (G) 藍 (B) 之外的第四個顏色通道。它專門用來定義影像中每個像素的透明度。想像一下,如果 RGB 決定了一個像素的顏色,那麼 Alpha 就決定了你能透過這個像素看到多少背後的內容。

概念上來說,

當影片或圖片的某些區域被設定為透明或半透明時,背後的內容就會透出來,這就是為什麼我們能看到「去背」的效果。

傳統的綠幕技術是透過軟體將特定顏色 (通常是綠色或藍色) 替換為透明,這種方法有其局限性,容易受到光線變化和邊緣細節的影響。

相比之下,直接使用支援 Alpha 通道的影片格式,可以更精確地控制每個像素的透明度。這不僅能創造出更自然、更細緻的去背效果,還能實現部分透明等複雜效果,大大提升了視覺表現的可能性。

了解了這個概念就能更好地理解為什麼有些影片格式能夠「去背」,而有些不能。

這個表格翻譯自 pixelbakery.com

檔案格式 / 編碼最大透明度位深度瀏覽器支援媒體類型優缺點 / 備註
Apple ProRes 444416-bit無支援影片 / .mov龐大的未壓縮影片,通常用於儲存母版。
HEVC / h.26510-bit僅限 Safari 支援影片 / .HEVC被設計為 h.264 的繼任者。
WebM (VP8 或 VP9 編碼)12-bit支援良好影片 / .WebM
OpenEXR32-bit無支援圖像 / .exr具有最大的 HDR 動態範圍。
PNG16-bit完全支援圖像 / .png有趣的是,PNG 也可以用來製作動畫。
TIFF32-bit無支援圖像 / .tiff有失真壓縮。
動畫 PNG24-bit支援良好圖像 / .apng比 GIF 更好的選擇。
GIF8-bit廣泛支援圖像 / .gif注意:瀏覽器通常不支援 GIF 的透明層,且壓縮效果不佳,檔案笨重。

注意:h.264 AKA MP4 不支持透明通道。

FLV 不包含在此列表中。它是一種舊的、已被淘汰的格式,充滿了安全問題和漏洞。

影片去背的方法

了解了 Alpha channel 的概念之後,要如何製作出一個去背的影片就很清晰了:想辦法從你的錄影軟體或影片製作軟體匯出一個支援 Alpha channel 的影片格式。

我不是影片軟體專家,其它的軟體操作此文略過不談。如果你使用其他軟體,可以嘗試問問 ChatGPT:

我使用 Wondershare Filmora 14 和 Adobe Premiere,請告訴我如何匯出帶有透明通道的編碼格式

之類的,我相信 AI 知道怎麼做。

在本文中,我將專注於如何在 OBS Studio 中錄製一個支援 Alpha channel 的影片。這是一個相對直接且實用的方法,特別適合已經在使用 OBS 進行直播或錄影的使用者。

OBS Studio 錄製支援 Alpha channel 的影片

我拍的操作說明影片

以這個設定錄製出來的影片檔案會非常大,日常使用可能不太合適...

要在 OBS Studio 中錄製支援 Alpha channel 的影片,需要進行一些特定的設定。

  1. 在 OBS Studio 的右下角找到並點擊設定按鈕。

    OBS設定
  2. 在設定視窗中,選擇「進階」頁。

    • 色彩格式:BGRA
    • 色彩空間:Rec. 709
    • 色彩範圍:完整
    進階
  3. 接下來,切換到「輸出」頁。在這裡,你需要:

    • 將輸出模式設定為「進階」
    • 來到「錄影」頁籤
    • 選擇「自訂 FFmpeg」
    • 封裝格式選擇 「mov」
    • 影像編碼器選擇 「prores_aw」
    輸出

完成這些設定後,你就可以開始錄製了。使用這些設定錄製出來的影片將會包含 Alpha channel,實現透明背景的效果。

值得注意的是,這個設定下錄製的影片檔案大小會相當大。對於日常使用,可能需要權衡檔案大小和無背景需求之間的平衡。

OBS Studio 匯入 Alpha channel 影片

經過前面一連串的折騰,終於成功錄製出了帶有 Alpha Channel 的影片。我懷著激動的心情,準備迎接這個研究的本命環節 —— 在 OBS Studio 中匯入這個來之不易的透明背景影片。

深吸一口氣,我打開了 OBS Studio,準備大顯身手......

然後?

那就是普普通通的匯入影片來源就行了,完全不用做什麼設定。 三小

沒錯,就是這麼簡單。你沒看錯,我也沒寫錯。那些複雜的設定? 那些特殊的步驟? 在匯入時統統不需要。OBS Studio 聰明得很,它會自動識別並正確處理帶有 Alpha Channel 的影片。

抱歉了我的朋友,問題不是出在 OBS Studio,而是在你身上。檢查一下你的影片格式,確保它支援 Alpha Channel,然後再試一次吧。

附錄: 如何將這無背景的影片轉檔成更小的檔案

差點忘了還要寫這個附錄。
前面說了這有 Alpha channel 的影片檔案會非常大對吧,那我是怎麼把它放到部落格網頁上的呢?

剛才那個使用 OBS 錄製的無背景的影片,其實是轉檔完的影片

不賣關子,指令在這裡:

INPUT="in.mov" OUTPUT="out.webm" CRF=45 EFFORT="good" bash -c 'ffmpeg -y -i "$INPUT" -pix_fmt yuva420p -an -c:v libvpx-vp9 -crf "$CRF" -b:v 0 -deadline "$EFFORT" -threads 4 -lag-in-frames 25 -row-mt 1 -pass 1 -f null /dev/null && ffmpeg -y -i "$INPUT" -pix_fmt yuva420p -an -c:v libvpx-vp9 -crf "$CRF" -b:v 0 -deadline "$EFFORT" -threads 4 -lag-in-frames 25 -row-mt 1 -pass 2 "$OUTPUT"'

這個 ffmpeg 指令會將 in.mov 轉檔成 out.webm,然後神奇的事情就發生了 —— 113 MB 的影片檔案瞬間縮小到了 635 KB!這簡直就是數位減肥的奇蹟😆

這個強大的指令來自這篇文章,這位大神從另一個角度探討了透明背景影片的主題,絕對值得每個前端工程師一讀。

至於能不能直接用 libvpx-vp9 錄影呢?說實話,我也不知道。我試過在 OBS 中使用 libvpx-vp9,結果每次按下錄影鍵,OBS 就像是遇到了什麼可怕的事情一樣立刻崩潰。

不過,鑑於我是在比較冷門的 Fedora Toolbox 中運行 OBS Studio,這個問題可能只是我個人環境的特殊情況。如果你有不同的經驗,或是成功使用 libvpx-vp9 直接錄製的話,歡迎在下方的 Mastodon 留言告訴我。我很樂意聽到你的經驗分享!

參考資料

延伸閱讀


影片下載轉檔筆記 (Youtube、Twitch、TwitCasting、Twitter Spaces 音訊空間、fc2 live、ffmpeg、yt-dlp)

後日談

朋友讀了這篇文章之後把他的字幕搞定了。

並且他說

你可以改一下筆記
拯救一下其他人
W軟體不支援
PR有
每個月繳的錢不一樣
ADOBE比較厲害!!!

這樣😆


本文章已出版至 LikeCoin 讚賞幣網路
NFT 限量發售中,起價 $0.5 USD!
歡迎收藏給我一個鼓勵 👀✨

回覆

你可以使用 Mastodon 或其他 ActivityPub/Fediverse 帳號來公開回覆此文章。現有的公開回覆顯示在下方。

打開文章

本篇文章透過「筆韻智匠 Quill Sage🖋️✨」和 Claude 3.5 Sonnet 聯合創作